//日期格式
Date.prototype.formate = function (fmt: any) {
  var dateObj = {
    'M+': this.getMonth() + 1,
    'd+': this.getDate(),
    'h+': this.getHours(),
    'm+': this.getMinutes(),
    "s+": this.getSeconds()//秒
  }
  if (/(y+)/.test(fmt)) {//是否以y开头(含年)
    fmt = fmt.replace(/(y+)/, this.getFullYear())
  }
  // +在正则表达式中表示匹配1个或多个连续的指定字符
  for (var key in dateObj) {//将其他的日期部分替换对应的数字，采用双数需补0
    var val = dateObj[key as keyof typeof dateObj] + ''
    if (new RegExp('(' + key + ')').test(fmt)) {
      fmt = fmt.replace(RegExp.$1, val.padStart(2, '0'))
    }
  }
  return fmt
}
// 对时间戳数据计算创建了多久时间
Date.prototype.computeDate = function () {
  const d = this
  let nowDate = new Date(); //现在时间date对象
  let datatime = this.getTime();
  let diffDate = nowDate.getTime() - datatime; //时间差（毫秒）
  if (diffDate <= 30 * 1000) {
    //小于30秒
    return "刚刚";
  } else if (diffDate < 1000 * 60) {
    //小于60秒
    return Math.ceil(diffDate / 1000) + "秒前";
  } else if (diffDate < 1000 * 3600) {
    //小于60分钟
    return Math.floor(diffDate / (1000 * 60)) + "分钟前";
  } else if (diffDate < 1000 * 3600 * 24) {
    //小于24小时
    return Math.floor(diffDate / (1000 * 3600)) + "小时前";
  } else if (diffDate < 1000 * 3600 * 24 * 2) {
    //小于两天
    return Math.floor(diffDate / (1000 * 3600 * 24)) + "天前";
  } else {
    //默认显示所有
    return d.formate("yyyy-MM-dd hh:mm"); //数据中的时间戳进行转化为日期
  }
};
export default Date; 